跳到主要内容

过渡条件脚本(Transition Condition Scripts)

条件(Conditions) 用于决定状态机何时从一个状态过渡到另一个状态。

过渡条件脚本(Transition Condition Scripts)适合处理内置比较难以表达的复杂逻辑。

创建过渡条件脚本

创建新脚本 并选择 过渡条件脚本(Transition Condition Script)

脚本结构(Anatomy)

type MyTransitionCondition = {
context: Context,
}

-- Called once when the script initializes.
function init(self: MyTransitionCondition, context: Context): boolean
-- Context gives you access to your main view model and other data.
self.context = context

return true
end

-- Add your transition logic here.
-- `evaluate` is fired every frame while the transition is active.
-- Returning false prevents a transition, true allows a transition.
function evaluate(self: MyTransitionCondition): boolean
return false
end

-- Return a factory function that Rive uses to build the Transition Condition instance.
return function(): TransitionCondition<MyTransitionCondition>
return {
init = init,
evaluate = evaluate,
context = late(),
}
end

说明(Note) evaluate 会在过渡激活期间每帧执行。

建议保持快速、无副作用,仅返回是否允许过渡。

添加过渡条件

  1. 选中一个 Transition
  2. 点击 + 添加 Condition
  3. 选择你的脚本

Add a custom transition

脚本输入(Script Inputs)

输入(Inputs)可让你在不修改逻辑的情况下给过渡条件传参,提升复用性。

说明(Note) 输入可以控制脚本,但脚本不能修改输入值。

若需控制视图模型属性,请通过上下文(Context)或视图模型输入(View Model Inputs)访问。

设置输入

点击过渡旁属性图标(Properties icon)设置输入值。

transition script inputs

绑定输入

右键属性并选择 Data Bind,将输入绑定到视图模型属性。

data binding transition script inputs